What is @turf/hex-grid?
@turf/hex-grid is a module from the Turf.js library that allows you to create a hexagonal grid within a bounding box. This can be useful for spatial analysis, data visualization, and geographic information system (GIS) applications.
What are @turf/hex-grid's main functionalities?
Create a Hexagonal Grid
This feature allows you to create a hexagonal grid within a specified bounding box. The `bbox` parameter defines the bounding box, `cellSide` specifies the length of each hexagon's side, and `options` can include units of measurement.
const turf = require('@turf/turf');
const bbox = [-96, 31, -84, 40];
const cellSide = 50;
const options = { units: 'miles' };
const hexgrid = turf.hexGrid(bbox, cellSide, options);
console.log(JSON.stringify(hexgrid));
Other packages similar to @turf/hex-grid
d3-hexbin
d3-hexbin is a module from the D3.js library that provides tools for creating hexagonal binning layouts. It is particularly useful for data visualization in web applications. Compared to @turf/hex-grid, d3-hexbin is more focused on visual representation and less on spatial analysis.
h3-js
h3-js is a JavaScript library for working with Uber's H3 hexagonal hierarchical geospatial indexing system. It offers more advanced features for spatial indexing and analysis compared to @turf/hex-grid, which is more focused on simple hexagonal grid creation.
@turf/hex-grid
hexGrid
Takes a bounding box and the diameter of the cell and returns a FeatureCollection of flat-topped
hexagons or triangles (Polygon features) aligned in an "odd-q" vertical grid as
described in Hexagonal Grids.
Parameters
-
bbox
BBox extent in [minX, minY, maxX, maxY] order
-
cellSide
number length of the side of the the hexagons or triangles, in units. It will also coincide with the
radius of the circumcircle of the hexagons.
-
options
Object Optional parameters (optional, default {}
)
options.units
string used in calculating cell size, can be degrees, radians, miles, or kilometers (optional, default 'kilometers'
)options.properties
Object passed to each hexagon or triangle of the grid (optional, default {}
)options.mask
Feature<Polygon>? if passed a Polygon or MultiPolygon, the grid Points will be created only inside itoptions.triangles
boolean whether to return as triangles instead of hexagons (optional, default false
)
Examples
var bbox = [-96,31,-84,40];
var cellSide = 50;
var options = {units: 'miles'};
var hexgrid = turf.hexGrid(bbox, cellSide, options);
var addToMap = [hexgrid];
Returns FeatureCollection<Polygon> a hexagonal grid
This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.
Installation
Install this single module individually:
$ npm install @turf/hex-grid
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf